package edu.cuit.canary.commons.oss.service;

import java.io.InputStream;

/**
 * Minio文件上传/下载 业务接口
 */
public interface FileService {
    /**
     * 上传文件至Minio服务器
     * @param fileName 文件名称(sufei.jpg)，需要构建前缀: real-path/yyyy/mm/dd/sufe.jpg
     * @param contentType 文件类型
     * @param input 文件内容
     * @return 上传成功后文件访问路径
     */
    String uploadFile(String fileName, String contentType, InputStream input);

    /**
     * 上传图片文件
     * @param fileName 文件名
     * @param contentType 文件类型
     * @param input 文件内容
     * @return 上传成功后文件访问路径
     */
    String uploadImageFile(String fileName, String contentType, InputStream input);

    /**
     * 上传html文件
     * @param fileName 文件名称
     * @param input 文件内容
     * @return 上传成功后文件访问路径
     */
    String uploadHtmlFile(String fileName, InputStream input);

    /**
     * 删除文件
     * @param path  文件全路径
     */
    void delete(String path);

    /**
     * 下载文件
     * @param path  文件全路径
     * @return
     *
     */
    byte[]  downLoadFile(String path);
}
